SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS OFF
GO

CREATE PROCEDURE [dbo].[spMovimientosAlumnos]

@Organizacion int,
@AnioLectivo int = null,
@Fecha varchar(10) = null,
@Alumno  int = null,
@Novedad int = null,
@SeccionOrigen int = Null,
@SeccionDestino int = null,
@Previas Varchar (10) = null,
@Carrera int = null,
@EscuelaOrigen  int = Null,
@EscuelaDestino int = Null,
@Observaciones varchar (250) = null,
--AlumnoDivision
@Division int = null,
@Desde Varchar(10) = null,
@hasta Varchar(10) = null,
@PasedeOrigen int = null,
@InscripcionDeOrigen int = null,
@Baja Varchar(1) = null,
@Causabaja int = null,
--finAlumnodivision--
--Inscripciones--
@Curso int  = null,
@Escolarizado Varchar(1) = null,
@Resuelta VarChar(1) = null,
--Fin Inscripcion---
--CarrerasAlumnos--
@AnioIngreso int = null,
@AlumnoRegular varchar(1) = null,
@AnioEgreso int = null,
@Titulo int = null,
@RegistroEgreso Varchar(20) = Null,
--Fin CarrerasAlumnos
--Pases--
@OrganizacionOrigen int = null,
@OrganizacionDestino int = Null,
@Abandono Varchar(1) = null,
--Fin pases--


---Cursadas---
@Espaciocurricular int = null,
@Asignatura int = null,
@Aprobo varchar(1) = null,
@Promedio float =  null,
@Conducta varchar(10) = null,
@Inasistencias int = null,
@Tardanzas int = null,
@Sanciones int = null,
@PorcInasistencias numeric = null,
@Estado varchar(10) = null,
---Fin Cursadas---
-- Parametro para especifica que operacion es A=Alta, B=Baja, M=Modificacion
@ABM int  = 1,
@mensaje int OutPut,
@mess varchar(200) OutPut
AS
SET NOCOUNT ON

-- 1 insert Inscripciones
-- 11 Update Inscripciones
-- 2 insert matriculacion
-- 22 update matriculacion
-- 3 Insert Repitencia
-- 33 update Repitencia
-- 4  Insert Promocion
-- 44 Update Promocion
-- 5 insert Abandono
-- 55 Update Abandono
-- 6 Insert Salida con pase
-- 66 Update Salida con pase
-- 7 Insert ingreso con pase
-- 77 update ingreso con pase
-- 8 Insert Reasignacion
-- 88 Upate reasignacion
-- 9 insert Reingreso
-- 99 Update  Reingreso
Declare @idEspacioCurricular int
Declare @idasignatura int
Declare @idcarrera int
Declare @iddivision int
Declare @idCursada int 		
declare @error int
select @mess = 'Verifique los datos, la operación no se realizó '
declare @idalumno int
		select @idalumno = idalumno from tb_alumnos where documento = @Alumno
		
		declare @idorganizacion int
		select @idorganizacion = idOrganizaciones from tb_organizaciones where CUISE = @Organizacion
		Begin transaction
if @novedad = 1 and @carrera is  null  begin		

Select @mensaje = 2,@mess = 'Los datos del alumno no han sido cargados'
goto salir
end 
if @novedad = 1 and @carrera is not null  begin
	------------Inscripciones Alumnos ----------------
			if not exists (select * from tb_alumnos where documento = @Alumno ) begin			
			Select @mensaje = 2,@mess = 'El alumno no existe'
			goto salir
			end 

			if exists (Select * from tb_Inscripciones where Alumno = @idalumno and AnioLectivo = @AnioLectivo and carrera = @carrera and Organizacion = @idorganizacion ) begin
			set @ABM = 11
			end
			else begin
			set @ABM = 1
			end
			
			if @ABM = 11 begin
			--BEGIN TRANSACTION
			
			UPDATE tb_Inscripciones
			SET Alumno = @Alumno,AnioLectivo = AnioLectivo,Organizacion = @Organizacion,Carrera = @Carrera,Curso = @Curso,Escolarizado = @Escolarizado,Resuelta = @Resuelta
			where Alumno = @Alumno and AnioLectivo = @AnioLectivo and Carrera = @Carrera
			Select @mensaje = 2,@mess = 'El alumno fue inscripto corretamente'
			end	
			if @ABM = 1 begin
			--BEGIN TRANSACTION
			
					INSERT INTO tb_Inscripciones (Organizacion,AnioLectivo,Alumno,Carrera,Curso,Escolarizado,Resuelta)
					VALUES (@idorganizacion,@AnioLectivo,@idalumno,@Carrera,@Curso,'N','N')
					declare @idInscripcion int 
					Select @idInscripcion =  @@identity
			
			Select @mensaje = 2,@mess = 'El alumno fue inscripto corretamente'

end

-----------Fin Inscripciones Alumnos
end
if @novedad = 2 and @SeccionOrigen is null begin	

Select @mensaje = 2,@mess = 'El alumno no han sido cargados Debe seleccionar una Division'
goto salir
end 

if @novedad = 2 and @SeccionOrigen is not null begin

------------Matriculacion Alumnos ----------------
		--Alumnodivision:	
		select @curso = curso, @carrera = GrupoCarreras from tb_divisiones  where iddivision =@SeccionOrigen
		--declare @idorganizacion int
		--select @idorganizacion = idOrganizaciones from tb_organizaciones where CUISE = @Organizacion

		if exists (Select * from tb_Inscripciones where Alumno = @idalumno and organizacion = @idorganizacion) begin
				UPDATE tb_Inscripciones
				SET Alumno = @idalumno,AnioLectivo = @AnioLectivo,Organizacion = @idorganizacion,Curso = @Curso,Escolarizado = 'S',Resuelta = 'S'
				where Alumno = @idalumno and AnioLectivo = @AnioLectivo and Organizacion = @idorganizacion
				
		
				--INSERT INTO tb_Inscripciones (Organizacion,AnioLectivo,Alumno,Carrera,Curso,Escolarizado,Resuelta)
				--VALUES (@idorganizacion,@AnioLectivo,@idalumno,@Carrera,@Curso,'S','S')
		--		declare @idInscripcion int 
				--Select @idInscripcion =  @@identity
			
				if not exists (Select * from tb_AlumnoDivision where Alumno = @idalumno and AnioLectivo = @AnioLectivo and Division = @SeccionOrigen) begin

					INSERT INTO tb_alumnodivision(Alumno,Division,AnioLectivo,Desde,Hasta,PaseDeOrigen,InscripcionDeOrigen,Baja,CausaBaja,cargo,hora)
					VALUES (@idalumno,@SeccionOrigen,@AnioLectivo,@Fecha,@Hasta,@PaseDeOrigen,@InscripcionDeOrigen,'N',null,system_user,getdate())
					declare @idRelDivisionAlumno int 
					Select @idRelDivisionAlumno =  @@identity
				
				end
				------------Asignar Asignaturas ----------------------
						
				select @iddivision = iddivision, @curso = curso from tb_divisiones where iddivision = @SeccionOrigen
				select @idcarrera = carrera from tb_inscripciones where Alumno = @idalumno and AnioLectivo = @AnioLectivo and organizacion = @idorganizacion
				DECLARE asignaturas CURSOR FOR
				select idEspacioCurricular,idasignatura,idcarrera  from tb_carreras c inner join tb_espacioscurriculares e on c.idcarrera = e.carrera inner join tb_asignaturas a on a.idasignatura = e.asignatura  where e.curso = @curso and e.carrera= @idcarrera
		    		
				OPEN asignaturas
		    
				FETCH NEXT FROM asignaturas into @idEspacioCurricular,@idasignatura,@idcarrera
		     
				WHILE @@FETCH_STATUS = 0
				BEGIN
				if not exists (Select * from tb_cursadas where Alumno = @idalumno and AnioLectivo = @AnioLectivo and Division = @SeccionOrigen and Espaciocurricular = @idEspacioCurricular and Asignatura=@idasignatura) begin
					INSERT INTO tb_Cursadas (Carrera,Curso,AnioLectivo,Espaciocurricular,Asignatura,Aprobo,Promedio,Conducta,Inasistencias,Tardanzas,Sanciones,Alumno,PorcInasistencias,Estado,Division)
					VALUES (@idcarrera,@Curso,@AnioLectivo,@idEspacioCurricular,@idasignatura,'N',@Promedio,@Conducta,0,0,1,@idalumno,@PorcInasistencias,'A',@SeccionOrigen)
				
				Select @idCursada =  @@identity
				end
				
				FETCH NEXT FROM asignaturas into @idEspacioCurricular,@idasignatura,@idcarrera
				END
				CLOSE asignaturas
				DEALLOCATE asignaturas
				------------Fin Asignar Asignaturas ----------------
		Select @mensaje = 2,@mess = 'El alumno ha sido cargado en la division seleccionada correctamente'
		end
		else begin	
		Select @mensaje = 2,@mess = 'El alumno NO ha sido cargado correctamente porque no se encuentra isncripto  '
		end		
------------Fin Matriculacion----------------------
--end

end
-----------Repitencia-------------------------------
	Declare @Curso1 int
	Declare @Curso2 int
	if @novedad = 3 and @SeccionOrigen is not null and @SeccionDestino is not null begin		

			if not exists (Select * from tb_Alumnodivision where Alumno = @idalumno and Division = @SeccionOrigen ) begin			
			Select @mensaje = 2,@mess = 'El alumno no tiene asignada la Division Seleccionada '
			goto salir
			end 		

		if exists (Select * from tb_Alumnodivision where Alumno = @idalumno and Division = @SeccionOrigen and aniolectivo = @aniolectivo ) begin			
			Select @curso1=Curso from tb_divisiones where iddivision =  @SeccionOrigen
			
			select  @curso2 = curso from tb_divisiones where iddivision = @SeccionDestino
			if  @curso1 = @curso2 begin
			
			UPDATE tb_alumnodivision SET Alumno = @idalumno,Division = Division,AnioLectivo = Aniolectivo,Desde = Desde,Hasta=@Fecha,PaseDeOrigen = PaseDeOrigen,InscripcionDeOrigen = InscripcionDeOrigen,Baja = 'S',CausaBaja = 4
			where Alumno = @idalumno and Division = @SeccionOrigen and baja = 'N'
			select @curso = curso, @carrera = GrupoCarreras from tb_divisiones  where iddivision =@SeccionDestino
			
			--select @SeccionOrigen = @SeccionDestino
			select @curso = curso, @carrera = GrupoCarreras from tb_divisiones  where iddivision =@SeccionDestino
		--declare @idorganizacion int
		--select @idorganizacion = idOrganizaciones from tb_organizaciones where CUISE = @Organizacion
			update tb_cursadas set estado = 'C' where Alumno = @idalumno and Division = @SeccionOrigen
		if exists (Select * from tb_Inscripciones where Alumno = @idalumno and organizacion = @idorganizacion) begin
				UPDATE tb_Inscripciones
				SET Alumno = @idalumno,AnioLectivo = @AnioLectivo,Organizacion = @idorganizacion,Curso = @Curso,Escolarizado = 'S',Resuelta = 'S'
				where Alumno = @idalumno and AnioLectivo = @AnioLectivo and Organizacion = @idorganizacion
				
				
				--INSERT INTO tb_Inscripciones (Organizacion,AnioLectivo,Alumno,Carrera,Curso,Escolarizado,Resuelta)
				--VALUES (@idorganizacion,@AnioLectivo,@idalumno,@Carrera,@Curso,'S','S')
		--		--declare @idInscripcion int 
				--Select @idInscripcion =  @@identity
			
				INSERT INTO tb_alumnodivision(Alumno,Division,AnioLectivo,Desde,Hasta,PaseDeOrigen,InscripcionDeOrigen,Baja,CausaBaja,cargo,hora)
				VALUES (@idalumno,@SeccionDestino,@AnioLectivo+1,@Fecha,null,@PaseDeOrigen,@InscripcionDeOrigen,'N',Null,system_user,getdate())
				------------Asignar Asignaturas ----------------------
						
				select @iddivision = iddivision, @curso = curso from tb_divisiones where iddivision = @SeccionDestino
				select @idcarrera = carrera from tb_inscripciones where Alumno = @idalumno and AnioLectivo = @AnioLectivo and organizacion = @idorganizacion
				DECLARE asignaturas CURSOR FOR
				select idEspacioCurricular,idasignatura,idcarrera  from tb_carreras c inner join tb_espacioscurriculares e on c.idcarrera = e.carrera inner join tb_asignaturas a on a.idasignatura = e.asignatura  where e.curso = @curso and e.carrera= @idcarrera
		    		
				OPEN asignaturas
		    
				FETCH NEXT FROM asignaturas into @idEspacioCurricular,@idasignatura,@idcarrera
		     
				WHILE @@FETCH_STATUS = 0
				BEGIN
				
				INSERT INTO tb_Cursadas (Carrera,Curso,AnioLectivo,Espaciocurricular,Asignatura,Aprobo,Promedio,Conducta,Inasistencias,Tardanzas,Sanciones,Alumno,PorcInasistencias,Estado,Division)
				VALUES (@idcarrera,@Curso,@AnioLectivo,@idEspacioCurricular,@idasignatura,'N',@Promedio,@Conducta,0,0,1,@idalumno,@PorcInasistencias,'A',@SeccionDestino)
				
		
				
				FETCH NEXT FROM asignaturas into @idEspacioCurricular,@idasignatura,@idcarrera
				END
				CLOSE asignaturas
				DEALLOCATE asignaturas
				------------Fin Asignar Asignaturas ----------------
		End
			--goto Alumnodivision
				
			Select @mensaje = 2,@mess = 'El alumno ha sido cargado en la division seleccionada correctamente'
			
			end 	
		end 		
		Select @mensaje = 2,@mess = 'El alumno ha sido cargado en la division seleccionada correctamente'

	end 
----------Fin Repitencia ----------------------
----------Promocion-----------------------------
		if @novedad = 4 and @SeccionOrigen is not null and @SeccionDestino is not null begin
				if not exists (Select * from tb_Alumnodivision where Alumno = @idalumno and Division = @SeccionOrigen ) begin			
			Select @mensaje = 2,@mess = 'El alumno no tiene la Division Seleccionada Asignada'
			goto salir
			end 		

		if exists (Select * from tb_Alumnodivision where Alumno = @idalumno and Division = @SeccionOrigen and aniolectivo = @aniolectivo ) begin			
			Select @curso1=Curso from tb_divisiones where iddivision =  @SeccionOrigen
			
			select  @curso2 = curso from tb_divisiones where iddivision = @SeccionDestino
			
			if  @curso1 <> @curso2 - 1  begin
			Select @mensaje = 2,@mess = 'El alumno no puede ser asignado a la división seleccionada'
			goto salir
			end
			else begin
			UPDATE tb_alumnodivision SET Alumno = Alumno,Division = Division,AnioLectivo = Aniolectivo,Desde = Desde,Hasta=@Fecha,PaseDeOrigen = PaseDeOrigen,InscripcionDeOrigen = InscripcionDeOrigen,Baja = 'S',CausaBaja = 1,Previas = @Previas
			where Alumno = @idalumno and Division = @SeccionOrigen and baja = 'N'
			select @curso = curso, @carrera = GrupoCarreras from tb_divisiones  where iddivision =@SeccionDestino
			
			--select @SeccionOrigen = @SeccionDestino
			select @curso = curso, @carrera = GrupoCarreras from tb_divisiones  where iddivision =@SeccionDestino
		--declare @idorganizacion int
		--select @idorganizacion = idOrganizaciones from tb_organizaciones where CUISE = @Organizacion

		if exists (Select * from tb_Inscripciones where Alumno = @idalumno and organizacion = @idorganizacion) begin
				--UPDATE tb_Inscripciones
				--SET Alumno = @idalumno,AnioLectivo = @AnioLectivo,Organizacion = @idorganizacion,Curso = @Curso,Escolarizado = 'S',Resuelta = 'S'
				--where Alumno = @idalumno and AnioLectivo = @AnioLectivo and Organizacion = @idorganizacion
				
		
				--INSERT INTO tb_Inscripciones (Organizacion,AnioLectivo,Alumno,Carrera,Curso,Escolarizado,Resuelta)
				--VALUES (@idorganizacion,@AnioLectivo,@idalumno,@Carrera,@Curso,'S','S')
		--		--declare @idInscripcion int 
				--Select @idInscripcion =  @@identity
			
				INSERT INTO tb_alumnodivision(Alumno,Division,AnioLectivo,Desde,Hasta,PaseDeOrigen,InscripcionDeOrigen,Baja,CausaBaja,cargo,hora)
				VALUES (@idalumno,@SeccionDestino,@AnioLectivo+1,@Fecha,@Hasta,@PaseDeOrigen,@InscripcionDeOrigen,'N',null,system_user,getdate())
				------------Asignar Asignaturas ----------------------
						
				select @iddivision = iddivision, @curso = curso from tb_divisiones where iddivision = @SeccionDestino
				select @idcarrera = carrera from tb_inscripciones where Alumno = @idalumno and AnioLectivo = @AnioLectivo and organizacion = @idorganizacion
				DECLARE asignaturas CURSOR FOR
				select idEspacioCurricular,idasignatura,idcarrera  from tb_carreras c inner join tb_espacioscurriculares e on c.idcarrera = e.carrera inner join tb_asignaturas a on a.idasignatura = e.asignatura  where e.curso = @curso and e.carrera= @idcarrera
		    		
				OPEN asignaturas
		    
				FETCH NEXT FROM asignaturas into @idEspacioCurricular,@idasignatura,@idcarrera
		     
				WHILE @@FETCH_STATUS = 0
				BEGIN
				
				INSERT INTO tb_Cursadas (Carrera,Curso,AnioLectivo,Espaciocurricular,Asignatura,Aprobo,Promedio,Conducta,Inasistencias,Tardanzas,Sanciones,Alumno,PorcInasistencias,Estado,Division)
				VALUES (@idcarrera,@Curso,@AnioLectivo,@idEspacioCurricular,@idasignatura,'N',@Promedio,@Conducta,0,0,1,@idalumno,@PorcInasistencias,'A',@SeccionDestino)
				
		
				
				FETCH NEXT FROM asignaturas into @idEspacioCurricular,@idasignatura,@idcarrera
				END
				CLOSE asignaturas
				DEALLOCATE asignaturas
				------------Fin Asignar Asignaturas ----------------
		--else begin
		--	Select @mensaje = 2,@mess = 'El Alumno no se encuentra Inscripto en la Organización Seleccionada'
		End
			--goto Alumnodivision
				
			Select @mensaje = 2,@mess = 'El Alumno promocionado  fue cargado correctamente'
		
			end 	
		end 		
		Select @mensaje = 2,@mess = 'El Alumno promocionado  fue cargado correctamente'
		goto salir

		end
-----------Fin Promocion----------------------
----------Abandono-----------------------------
		if @novedad = 5 and @SeccionOrigen is not null  begin
			if exists (Select * from tb_Alumnodivision where Alumno = @idalumno and Division = @SeccionOrigen ) begin			
			
			Select @curso1=Curso from tb_divisiones where iddivision =  @SeccionOrigen
			
			--UPDATE tb_alumnodivision SET Alumno = Alumno,Division = Division,AnioLectivo = Aniolectivo,Desde = Desde,Hasta=@Fecha,PaseDeOrigen = PaseDeOrigen,InscripcionDeOrigen = InscripcionDeOrigen,Baja = 'S',CausaBaja = 2,cargo = system_user
			UPDATE tb_alumnodivision SET Alumno = Alumno,Division = Division,AnioLectivo = Aniolectivo,Desde = Desde,Hasta=@Fecha,PaseDeOrigen = PaseDeOrigen,InscripcionDeOrigen = InscripcionDeOrigen,Baja = 'S',CausaBaja = 2,Cargo = system_user, Hora = Hora, Previas = @Previas
			where Alumno = @idalumno and Division = @SeccionOrigen and aniolectivo = @aniolectivo
			update tb_cursadas set estado = 'C' where Alumno = @idalumno and Division = @SeccionOrigen
			Select @mensaje = 2,@mess =  'El Alumno que abandono  fue cargado correctamente'
			goto salir
			End
		end
-----------Fin Abandono----------------------
---------Salida con pase-----------------------------
		if @novedad = 6 and @EscuelaDestino is not null  begin
			
			if exists (Select * from tb_Alumnodivision where Alumno = @idalumno and Division = @SeccionOrigen ) begin			
			declare @idorganizaciondestino int
			select @idorganizaciondestino = idOrganizaciones from tb_organizaciones where CUISE = @EscuelaDestino
			Select @curso1=Curso from tb_divisiones where iddivision =  @SeccionOrigen
			
			UPDATE tb_alumnodivision SET Alumno = Alumno,Division = Division,AnioLectivo = Aniolectivo,Desde = Desde,Hasta=@Fecha,PaseDeOrigen = PaseDeOrigen,InscripcionDeOrigen = InscripcionDeOrigen,Baja = 'S',CausaBaja = 3
			where Alumno = @idalumno and Division = @SeccionOrigen and aniolectivo = @aniolectivo
			if not exists (Select * from tb_Pases where Alumno = @idalumno and Fecha = @Fecha and OrganizacionOrigen =  @idorganizacion and  OrganizacionDestino = @idorganizaciondestino) begin
			INSERT INTO tb_Pases(Alumno,Fecha,OrganizacionOrigen,OrganizacionDestino,Abandono)
			VALUES (@idalumno,@Fecha,@idorganizacion,@idorganizaciondestino,'N')
			End
			update tb_cursadas set estado = 'C' where Alumno = @idalumno and Division = @SeccionOrigen
			Select @mensaje = 2,@mess =  'El Alumno con salida  fue cargado correctamente'
			goto salir
			End
		end
---------- Fin Salida con pase----------------------

---------Ingreso con pase-----------------------------
		if @novedad = 7 and @EscuelaDestino is not null  begin
			select @idorganizaciondestino = idOrganizaciones from tb_organizaciones where CUISE = @EscuelaDestino
			
			if not exists (Select * from tb_Pases where Alumno = @idalumno and Fecha = @Fecha and OrganizacionOrigen = @idorganizaciondestino and  OrganizacionDestino = @idorganizacion) begin
			
			INSERT INTO tb_Pases(Alumno,Fecha,OrganizacionOrigen,OrganizacionDestino,Abandono)
			VALUES (@idalumno,@Fecha,@idorganizaciondestino,@idorganizacion,'N')
			
			Select @mensaje = 2,@mess =  'El Alumno con ingreso  fue cargado correctamente'
			goto salir
			End
		end
---------- Fin Ingreso con pase----------------------
--------Aprobar cursadas-----------------------------
		if @novedad = 500  begin
						
			UPDATE tb_cursadas
			SET Carrera = Carrera,Curso =Curso ,AnioLectivo =  @AnioLectivo,EspacioCurricular = EspacioCurricular,Asignatura = Asignatura,Aprobo = @Aprobo,Promedio = Promedio,Conducta = Conducta,Inasistencias = Inasistencias,Tardanzas = Tardanzas,Sanciones = Sanciones,Alumno = Alumno,porcInasistencias = porcInasistencias,Estado = @Estado,Division = Division
			where Alumno = @Alumno and AnioLectivo = @AnioLectivo and idcursada= @idcursada
			
			Select @mensaje = 2,@mess =  'Las Cursadas fueron Aprobadas correctamente'
			goto salir
			
		end
---------- Fin Cursadas----------------------
----------Egreso-----------------------------
		if @novedad = 10 and @SeccionOrigen is not null  begin
			if exists (Select * from tb_Alumnodivision where Alumno = @idalumno and Division = @SeccionOrigen ) begin			
			
			Select @curso1=Curso from tb_divisiones where iddivision =  @SeccionOrigen
			
			UPDATE tb_alumnodivision SET Alumno = Alumno,Division = Division,AnioLectivo = Aniolectivo,Desde = Desde,Hasta=@Fecha,PaseDeOrigen = PaseDeOrigen,InscripcionDeOrigen = InscripcionDeOrigen,Baja = 'S',CausaBaja = 5,Cargo = system_user, Hora = Hora, Previas = @Previas
			where Alumno = @idalumno and Division = @SeccionOrigen
			update tb_cursadas set estado = 'C' where Alumno = @idalumno and Division = @SeccionOrigen
			Select @mensaje = 2,@mess =  'El Alumno que Egreso  fue cargado correctamente'
			goto salir
			End
		end
-----------Fin Egreso----------------------
-----------Reasignacion-------------------------------
		if @novedad = 8 and @SeccionOrigen is not null and @SeccionDestino is not null begin		
			if not exists (Select * from tb_Alumnodivision where Alumno = @idalumno and Division = @SeccionOrigen ) begin			
			Select @mensaje = 2,@mess = 'El alumno no tiene asignada la Division Seleccionada '
			goto salir
			end 		

		if exists (Select * from tb_Alumnodivision where Alumno = @idalumno and Division = @SeccionOrigen and AnioLectivo =@AnioLectivo ) begin			
			Select @curso1=Curso from tb_divisiones where iddivision =  @SeccionOrigen
			
			select  @curso2 = curso from tb_divisiones where iddivision = @SeccionDestino
			if  @curso1 = @curso2 begin
			
			UPDATE tb_alumnodivision SET Alumno = @idalumno,Division = Division,AnioLectivo = Aniolectivo,Desde = Desde,Hasta=@Fecha,PaseDeOrigen = PaseDeOrigen,InscripcionDeOrigen = InscripcionDeOrigen,Baja = 'S',CausaBaja = 7,cargo = cargo,hora = hora,previas = @previas
			where Alumno = @idalumno and Division = @SeccionOrigen and baja = 'N'
			select @curso = curso, @carrera = GrupoCarreras from tb_divisiones  where iddivision =@SeccionDestino
			
			--select @SeccionOrigen = @SeccionDestino
			select @curso = curso, @carrera = GrupoCarreras from tb_divisiones  where iddivision =@SeccionDestino
		--declare @idorganizacion int
		--select @idorganizacion = idOrganizaciones from tb_organizaciones where CUISE = @Organizacion
			update tb_cursadas set estado = 'C' where Alumno = @idalumno and Division = @SeccionOrigen
		if exists (Select * from tb_Inscripciones where Alumno = @idalumno  and organizacion = @idorganizacion) begin
				UPDATE tb_Inscripciones
				SET Alumno = @idalumno,AnioLectivo = @AnioLectivo,Organizacion = @idorganizacion,Curso = @Curso,Escolarizado = 'S',Resuelta = 'S'
				where Alumno = @idalumno and AnioLectivo = @AnioLectivo and Organizacion = @idorganizacion
				
				
				--INSERT INTO tb_Inscripciones (Organizacion,AnioLectivo,Alumno,Carrera,Curso,Escolarizado,Resuelta)
				--VALUES (@idorganizacion,@AnioLectivo,@idalumno,@Carrera,@Curso,'S','S')
		--		--declare @idInscripcion int 
				--Select @idInscripcion =  @@identity
			
				INSERT INTO tb_alumnodivision(Alumno,Division,AnioLectivo,Desde,Hasta,PaseDeOrigen,InscripcionDeOrigen,Baja,CausaBaja,cargo)
				VALUES (@idalumno,@SeccionDestino,@AnioLectivo,@Fecha,null,@PaseDeOrigen,@InscripcionDeOrigen,'N',Null,system_user)
				------------Asignar Asignaturas ----------------------
						
				select @iddivision = iddivision, @curso = curso from tb_divisiones where iddivision = @SeccionDestino
				select @idcarrera = carrera from tb_inscripciones where Alumno = @idalumno and AnioLectivo = @AnioLectivo and organizacion = @idorganizacion
				DECLARE asignaturas CURSOR FOR
				select idEspacioCurricular,idasignatura,idcarrera  from tb_carreras c inner join tb_espacioscurriculares e on c.idcarrera = e.carrera inner join tb_asignaturas a on a.idasignatura = e.asignatura  where e.curso = @curso and e.carrera= @idcarrera
		    		
				OPEN asignaturas
		    
				FETCH NEXT FROM asignaturas into @idEspacioCurricular,@idasignatura,@idcarrera
		     
				WHILE @@FETCH_STATUS = 0
				BEGIN
				
				INSERT INTO tb_Cursadas (Carrera,Curso,AnioLectivo,Espaciocurricular,Asignatura,Aprobo,Promedio,Conducta,Inasistencias,Tardanzas,Sanciones,Alumno,PorcInasistencias,Estado,Division)
				VALUES (@idcarrera,@Curso,@AnioLectivo,@idEspacioCurricular,@idasignatura,'N',@Promedio,@Conducta,0,0,1,@idalumno,@PorcInasistencias,'A',@SeccionDestino)
				
		
				
				FETCH NEXT FROM asignaturas into @idEspacioCurricular,@idasignatura,@idcarrera
				END
				CLOSE asignaturas
				DEALLOCATE asignaturas
				------------Fin Asignar Asignaturas ----------------
		End
			--goto Alumnodivision
				
			Select @mensaje = 2,@mess = 'El alumno ha sido Reasignado en la division seleccionada correctamente'
			
			end 	
		end 		
		Select @mensaje = 2,@mess = 'El alumno ha sido cargado en la division seleccionada correctamente'

	end 
----------Fin Reasignacion ----------------------


select @mensaje = 1
select @mess

Select @Error = @@ERROR
If @Error <> 0
	GOTO SALIR
salir:
if @@Error = 0
	COMMIT TRANSACTION
else
	ROLLBACK TRAN
GO
GRANT EXECUTE ON  [dbo].[spMovimientosAlumnos] TO [Alumnos]
GRANT EXECUTE ON  [dbo].[spMovimientosAlumnos] TO [GestionInstitucional]
GO
